﻿Imports utileria
Imports Tom0014
Imports Tom0014TableAdapters
'TODO: Documentar el presente programa

Partial Class Registro_lidia
    Inherits System.Web.UI.Page
    Dim utils As New utileria               'Carga las utilerias
    Dim iAnimal As New Integer              ' ID  del anima a trabajar
    Dim Animal As New LidiaDataTable
    Dim _Animal As New LidiaTableAdapter
    Dim LidiaCaballo As New LidiaCaballoDataTable
    Dim _LidiaCaballo As New LidiaCaballoTableAdapter
    Dim LidiaPie As New LidiaPieDataTable
    Dim _LidiaPie As New LidiaPieTableAdapter
    Dim ponderaciones As New ponderacionesTableAdapter
    Dim pondera As ponderacionesDataTable = ponderaciones.GetPonderacion


#Region "Cargar catalogo a los controles"
    Protected Sub Registro_lidia_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        If Not IsPostBack Then
            utils.fillcatalogo()
            ddlPlaza = utils.fillcatalogo(ddlPlaza, "L")
            ddlResultado = utils.fillcatalogo(ddlResultado, "T")
            ddlMatador = utils.fillcatalogo(ddlMatador, "M")
            ddlTrofeos = utils.fillcatalogo(ddlTrofeos, "O")
            ddlReconocimiento = utils.fillcatalogo(ddlReconocimiento, "V")
            ddlLidia_Ac = utils.fillPondera(ddlLidia_Ac, "NOTAAC")
            ddlLidia_AP = utils.fillPondera(ddlLidia_AP, "NOTAAP")
            ddlRegresa1 = utils.fillPondera(ddlRegresa1, "REGRESA")
            ddlRegresa2 = utils.fillPondera(ddlRegresa2, "REGRESA")
            ddlRegresa3 = utils.fillPondera(ddlRegresa3, "REGRESA")
            ddlRegresa4 = utils.fillPondera(ddlRegresa4, "REGRESA")
            ddlRegresa5 = utils.fillPondera(ddlRegresa5, "REGRESA")
            ddlRegresa6 = utils.fillPondera(ddlRegresa6, "REGRESA")
            ddlRegresa7 = utils.fillPondera(ddlRegresa7, "REGRESA")
            ddlDistancia1 = utils.fillPondera(ddlDistancia1, "DISTANCIA")
            ddlDistancia2 = utils.fillPondera(ddlDistancia2, "DISTANCIA")
            ddlDistancia3 = utils.fillPondera(ddlDistancia3, "DISTANCIA")
            ddlDistancia4 = utils.fillPondera(ddlDistancia4, "DISTANCIA")
            ddlDistancia5 = utils.fillPondera(ddlDistancia5, "DISTANCIA")
            ddlDistancia6 = utils.fillPondera(ddlDistancia6, "DISTANCIA")
            ddlDistancia7 = utils.fillPondera(ddlDistancia7, "DISTANCIA")
            ddlSitio1 = utils.fillPondera(ddlSitio1, "SITIO")
            ddlSitio2 = utils.fillPondera(ddlSitio2, "SITIO")
            ddlSitio3 = utils.fillPondera(ddlSitio3, "SITIO")
            ddlSitio4 = utils.fillPondera(ddlSitio4, "SITIO")
            ddlSitio5 = utils.fillPondera(ddlSitio5, "SITIO")
            ddlSitio6 = utils.fillPondera(ddlSitio6, "SITIO")
            ddlSitio7 = utils.fillPondera(ddlSitio7, "SITIO")
            ddlAprieta1 = utils.fillPondera(ddlAprieta1, "APRIETA")
            ddlAprieta2 = utils.fillPondera(ddlAprieta2, "APRIETA")
            ddlAprieta3 = utils.fillPondera(ddlAprieta3, "APRIETA")
            ddlAprieta4 = utils.fillPondera(ddlAprieta4, "APRIETA")
            ddlAprieta5 = utils.fillPondera(ddlAprieta5, "APRIETA")
            ddlAprieta6 = utils.fillPondera(ddlAprieta6, "APRIETA")
            ddlAprieta7 = utils.fillPondera(ddlAprieta7, "APRIETA")
            ddlFijeza1 = utils.fillPondera(ddlFijeza1, "FIJEZA")
            ddlFijeza2 = utils.fillPondera(ddlFijeza2, "FIJEZA")
            ddlFijeza3 = utils.fillPondera(ddlFijeza3, "FIJEZA")
            ddlFijeza4 = utils.fillPondera(ddlFijeza4, "FIJEZA")
            ddlFijeza5 = utils.fillPondera(ddlFijeza5, "FIJEZA")
            ddlFijeza6 = utils.fillPondera(ddlFijeza6, "FIJEZA")
            ddlFijeza7 = utils.fillPondera(ddlFijeza7, "FIJEZA")
            ddlCabeza1 = utils.fillPondera(ddlCabeza1, "CABEZA")
            ddlCabeza2 = utils.fillPondera(ddlCabeza2, "CABEZA")
            ddlCabeza3 = utils.fillPondera(ddlCabeza3, "CABEZA")
            ddlCabeza4 = utils.fillPondera(ddlCabeza4, "CABEZA")
            ddlCabeza5 = utils.fillPondera(ddlCabeza5, "CABEZA")
            ddlCabeza6 = utils.fillPondera(ddlCabeza6, "CABEZA")
            ddlCabeza7 = utils.fillPondera(ddlCabeza7, "CABEZA")
            ddlDefiende1 = utils.fillPondera(ddlDefiende1, "DEFIENDE")
            ddlDefiende2 = utils.fillPondera(ddlDefiende2, "DEFIENDE")
            ddlDefiende3 = utils.fillPondera(ddlDefiende3, "DEFIENDE")
            ddlDefiende4 = utils.fillPondera(ddlDefiende4, "DEFIENDE")
            ddlDefiende5 = utils.fillPondera(ddlDefiende5, "DEFIENDE")
            ddlDefiende6 = utils.fillPondera(ddlDefiende6, "DEFIENDE")
            ddlDefiende7 = utils.fillPondera(ddlDefiende7, "DEFIENDE")
            ddlTomoV1 = utils.fillPondera(ddlTomoV1, "VARA")
            ddlTomoV2 = utils.fillPondera(ddlTomoV2, "VARA")
            ddlTomoV3 = utils.fillPondera(ddlTomoV3, "VARA")
            ddlTomoV4 = utils.fillPondera(ddlTomoV4, "VARA")
            ddlTomoV5 = utils.fillPondera(ddlTomoV5, "VARA")
            ddlTomoV6 = utils.fillPondera(ddlTomoV6, "VARA")
            ddlTomoV7 = utils.fillPondera(ddlTomoV7, "VARA")
            ddlmEmotividad = utils.fillPondera(ddlmEmotividad, "mEmotividad")
            ddlmFijeza = utils.fillPondera(ddlmFijeza, "mFijeza")
            ddlmRemata = utils.fillPondera(ddlmRemata, "mRemata")
            ddlmDesarrollo = utils.fillPondera(ddlmDesarrollo, "mDesarrollo")
            ddlmDistancia = utils.fillPondera(ddlmDistancia, "mDistancia")
            ddlmProntitud = utils.fillPondera(ddlmProntitud, "mProntitud")
            ddlmFuerza = utils.fillPondera(ddlmFuerza, "mFuerza")
            ddlmEnrazado = utils.fillPondera(ddlmEnrazado, "mEnrazado")
            ddlmFiereza = utils.fillPondera(ddlmFiereza, "mFiereza")
            ddlmGalope = utils.fillPondera(ddlmGalope, "mGalope")
            ddlmAlegria = utils.fillPondera(ddlmAlegria, "mAlegria")
            ddlmObediente = utils.fillPondera(ddlmObediente, "mObediente")
            ddlmGazapea = utils.fillPondera(ddlmGazapea, "mGazapea")
            ddlmEscarba = utils.fillPondera(ddlmEscarba, "mEscarba")
            ddlmQuerencia = utils.fillPondera(ddlmQuerencia, "mQuerencia")
            ddlmBerrea = utils.fillPondera(ddlmBerrea, "mBerrea")
            ddlmRectitud_D = utils.fillPondera(ddlmRectitud_D, "mRectitud_D")
            ddlmRectitud_I = utils.fillPondera(ddlmRectitud_I, "mRectitud_I")
            ddlmRepite_D = utils.fillPondera(ddlmRepite_D, "mRepite_D")
            ddlmRepite_I = utils.fillPondera(ddlmRepite_I, "mREpite_I")
            ddlmNobleza_D = utils.fillPondera(ddlmNobleza_D, "mNobleza_D")
            ddlmNobleza_I = utils.fillPondera(ddlmNobleza_I, "mNobleza_I")
            ddlmSon_D = utils.fillPondera(ddlmSon_D, "mSon_D")
            ddlmSon_I = utils.fillPondera(ddlmSon_I, "mSon_I")
            ddlmRepone_D = utils.fillPondera(ddlmRepone_D, "mRepone_D")
            ddlmRepone_I = utils.fillPondera(ddlmRepone_I, "mRepone_I")
            ddlmBajaCabeza = utils.fillPondera(ddlmBajaCabeza, "mBajaCabeza")
            ddlmRajado = utils.fillPondera(ddlmRajado, "mRajado")
            ddlmPases = utils.fillPondera(ddlmPases, "mPases")
            ddlmCabezas = utils.fillPondera(ddlmCabezas, "mCabeza")
            ddlmCabeza_D = utils.fillPondera(ddlmCabeza_D, "pCabeza")
            ddlmCabeza_I = utils.fillPondera(ddlmCabeza_I, "pCabeza")
            ddlmMano_D = utils.fillPondera(ddlmMano_D, "pManos")
            ddlmMano_I = utils.fillPondera(ddlmMano_I, "pManos")
            ddlmRecorrido2_D = utils.fillPondera(ddlmRecorrido2_D, "pRecorrido")
            ddlmRecorrido2_I = utils.fillPondera(ddlmRecorrido2_I, "pRecorrido")
            ddlmFinalizacion_D = utils.fillPondera(ddlmFinalizacion_D, "pFinalizacion")
            ddlmFinalizacion_I = utils.fillPondera(ddlmFinalizacion_I, "pFinalizacion")
        End If
    End Sub
#End Region
#Region "Asignar valores a controles"
    Protected Sub Registro_lidia_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            iAnimal = Request.QueryString("animal") ' Solicitas el Id del animal
        Catch ex As Exception
            iAnimal = 0
            Exit Sub ' Salgo del sub proceso
        End Try

        If Not IsPostBack Then ' Si es la primera vez que se carga la pagina
            Animal = _Animal.GetLidiaById(iAnimal) ' Traer los datos del animal
            If Animal.Count = 1 Then ' Si existe el animal asigno a los controles
                hdClave.Value = Animal(0).claveSNLA
                lblAnimal.Text = Animal(0).claveSNLA & " " & Animal(0).nombre
                ddlLidia_Ac.SelectedValue = Animal(0).lidia_ac
                txtLidiaACCal.Text = Animal(0).lidia_acCal
                ddlLidia_AP.SelectedValue = Animal(0).lidia_ap
                txtLidiaAPCal.Text = Animal(0).lidia_apCal
                ddlPlaza.SelectedValue = Animal(0).lidia_plaza
                If Not Animal(0).Islidia_fechaNull() Then txtFecha.Text = Animal(0).lidia_fecha.ToString
                txtLugar.Text = Animal(0).lidia_lugar.ToString
                txtPeso.Text = Animal(0).lidia_peso.ToString
                txtNombre.Text = Animal(0).lidia_nombre
                ddlResultado.SelectedValue = Animal(0).lidia_resultado
                ddlMatador.SelectedValue = Animal(0).lidia_matador
                ddlTrofeos.SelectedValue = Animal(0).lidia_trofeos
                ddlReconocimiento.SelectedValue = Animal(0).lidia_rec_gan
                txtPrecio.Text = Animal(0).lidia_precio
                ' Asignacion de la Lidia a Caballo
                LidiaCaballo = _LidiaCaballo.GetLidiaCaballoByAnimal(iAnimal)
                GetVara(iAnimal, 1, ddlRegresa1, ddlDistancia1, ddlSitio1, _
                            ddlAprieta1, ddlFijeza1, ddlCabeza1, ddlDefiende1, ddlTomoV1)
                GetVara(iAnimal, 2, ddlRegresa2, ddlDistancia2, ddlSitio2, _
                            ddlAprieta2, ddlFijeza2, ddlCabeza2, ddlDefiende2, ddlTomoV2)
                GetVara(iAnimal, 3, ddlRegresa3, ddlDistancia3, ddlSitio3, _
                            ddlAprieta3, ddlFijeza3, ddlCabeza3, ddlDefiende3, ddlTomoV3)
                GetVara(iAnimal, 4, ddlRegresa4, ddlDistancia4, ddlSitio4, _
                            ddlAprieta4, ddlFijeza4, ddlCabeza4, ddlDefiende4, ddlTomoV4)
                GetVara(iAnimal, 5, ddlRegresa5, ddlDistancia5, ddlSitio5, _
                            ddlAprieta5, ddlFijeza5, ddlCabeza5, ddlDefiende5, ddlTomoV5)
                GetVara(iAnimal, 6, ddlRegresa6, ddlDistancia6, ddlSitio6, _
                            ddlAprieta6, ddlFijeza6, ddlCabeza6, ddlDefiende6, ddlTomoV6)
                GetVara(iAnimal, 7, ddlRegresa7, ddlDistancia7, ddlSitio7, _
                            ddlAprieta7, ddlFijeza7, ddlCabeza7, ddlDefiende7, ddlTomoV7)
                'Asignacion de Lida a Pie
                LidiaPie = _LidiaPie.GetLidiaPieByAnimal(iAnimal)
                If LidiaPie.Count = 1 Then
                    ' -- G E N E R A L E S ---
                    ddlmEmotividad.SelectedValue = LidiaPie(0).emotividad.ToString
                    ddlmFijeza.SelectedValue = LidiaPie(0).fijeza.ToString
                    ddlmRemata.SelectedValue = LidiaPie(0).remata.ToString
                    ddlmDesarrollo.SelectedValue = LidiaPie(0).desarrollo.ToString
                    ddlmDistancia.SelectedValue = LidiaPie(0).distancia.ToString
                    ddlmProntitud.SelectedValue = LidiaPie(0).prontitud.ToString
                    ddlmFuerza.SelectedValue = LidiaPie(0).fuerza.ToString
                    ddlmEnrazado.SelectedValue = LidiaPie(0).enrazado.ToString
                    ddlmFiereza.SelectedValue = LidiaPie(0).fireza.ToString
                    ddlmGalope.SelectedValue = LidiaPie(0).galope.ToString
                    ddlmAlegria.SelectedValue = LidiaPie(0).alegria.ToString
                    ddlmObediente.SelectedValue = LidiaPie(0).obediente.ToString
                    ddlmGazapea.SelectedValue = LidiaPie(0).gazapea.ToString
                    ddlmEscarba.SelectedValue = LidiaPie(0).escarba.ToString
                    ddlmQuerencia.SelectedValue = LidiaPie(0).querencia.ToString
                    ddlmBerrea.SelectedValue = LidiaPie(0).berrea.ToString

                    ' -- E N G A Ñ O S ---
                    ddlmRectitud_D.SelectedValue = LidiaPie(0).rectitud_der.ToString
                    ddlmRectitud_I.SelectedValue = LidiaPie(0).rectitud_izq.ToString
                    ddlmRepite_D.SelectedValue = LidiaPie(0).repite_der.ToString
                    ddlmRepite_I.SelectedValue = LidiaPie(0).repite_izq.ToString
                    ddlmCabeza_D.SelectedValue = LidiaPie(0).pCabeza_D.ToString
                    ddlmCabeza_I.SelectedValue = LidiaPie(0).pCabeza_I.ToString
                    ddlmNobleza_D.SelectedValue = LidiaPie(0).nobleza_der.ToString
                    ddlmNobleza_I.SelectedValue = LidiaPie(0).nobleza_izq.ToString
                    ddlmMano_D.SelectedValue = LidiaPie(0).pManos_D.ToString
                    ddlmMano_I.SelectedValue = LidiaPie(0).pManos_I.ToString
                    ddlmSon_D.SelectedValue = LidiaPie(0).son_der.ToString
                    ddlmSon_I.SelectedValue = LidiaPie(0).son_izq.ToString
                    ddlmRecorrido2_D.SelectedValue = LidiaPie(0).pRecorrido_D.ToString
                    ddlmRecorrido2_I.SelectedValue = LidiaPie(0).pRecorrido_I.ToString()
                    ddlmRepone_D.SelectedValue = LidiaPie(0).repone_der.ToString
                    ddlmRepone_I.SelectedValue = LidiaPie(0).repone_izq.ToString
                    ddlmFinalizacion_D.SelectedValue = LidiaPie(0).pFinalizacion_D.ToString
                    ddlmFinalizacion_I.SelectedValue = LidiaPie(0).pFinalizacion_I.ToString
                    ddlmBajaCabeza.SelectedValue = LidiaPie(0).bajacabeza.ToString
                    ddlmRajado.SelectedValue = LidiaPie(0).rajado.ToString
                    ddlmPases.SelectedValue = LidiaPie(0).pases.ToString
                    ddlmCabezas.SelectedValue = LidiaPie(0).cabeza.ToString
                End If

            Else
                Exit Sub ' Salgo de la rutina
            End If
        End If
    End Sub
#End Region
#Region "Funciones Personalizadas"
    Private Sub GetVara(ByVal animal As Integer, ByVal numeroVara As Integer, _
            ByRef regresa As DropDownList, ByRef distancia As DropDownList, ByRef sitio As DropDownList, _
            ByRef aprieta As DropDownList, ByRef fijeza As DropDownList, ByRef cabeza As DropDownList, _
            ByRef defiende As DropDownList, ByRef tomoVara As DropDownList)

        Dim LidiaRow As LidiaCaballoRow ' Genero un registro
        LidiaRow = LidiaCaballo.FindByAnimalIdno_vara(animal, numeroVara) ' Busco el registro
        If Not IsNothing(LidiaRow) Then
            regresa.SelectedValue = LidiaRow.regresa.ToString
            distancia.SelectedValue = LidiaRow.distancia.ToString
            sitio.SelectedValue = LidiaRow.sitio.ToString
            aprieta.SelectedValue = LidiaRow.aprieta.ToString
            fijeza.SelectedValue = LidiaRow.fijeza.ToString
            cabeza.SelectedValue = LidiaRow.cabeza.ToString
            defiende.SelectedValue = LidiaRow.defiende.ToString
            tomoVara.SelectedValue = LidiaRow.vara.ToString
        End If
        LidiaRow = Nothing
    End Sub
    Private Sub setVara(ByVal animal As Integer, ByVal numeroVara As Integer, _
            ByRef regresa As DropDownList, ByRef distancia As DropDownList, ByRef sitio As DropDownList, _
            ByRef aprieta As DropDownList, ByRef fijeza As DropDownList, ByRef cabeza As DropDownList, _
            ByRef defiende As DropDownList, ByRef tomoVara As DropDownList)
        Dim claveAnimal As String = hdClave.Value
        Dim iRegresa, iDistancia, iSitio, iAprieta, iFijeza, iCabeza, iDefiende, itomoVara As Integer

        iRegresa = CType(regresa.SelectedValue, Integer)
        iDistancia = CType(distancia.SelectedValue, Integer)
        iSitio = CType(sitio.SelectedValue, Integer)
        iAprieta = CType(aprieta.SelectedValue, Integer)
        iFijeza = CType(fijeza.SelectedValue, Integer)
        iCabeza = CType(cabeza.SelectedValue, Integer)
        iDefiende = CType(defiende.SelectedValue, Integer)
        itomoVara = CType(tomoVara.SelectedValue, Integer)

        Dim HayVara As Boolean
        HayVara = Not (iRegresa = 0 And iDistancia = 0 And iSitio = 0 And iAprieta = 0 And iFijeza = 0 And iCabeza = 0 And iDefiende = 0 And itomoVara = 0)

        Dim LidiaRow As LidiaCaballoRow
        LidiaRow = LidiaCaballo.FindByAnimalIdno_vara(animal, numeroVara)
        If Not IsNothing(LidiaRow) Then ' Existe el registro
            If (HayVara) Then 'Si hay vara actualiza el 
                LidiaRow.regresa = iRegresa
                LidiaRow.distancia = iDistancia
                LidiaRow.sitio = iSitio
                LidiaRow.aprieta = iAprieta
                LidiaRow.fijeza = iFijeza
                LidiaRow.cabeza = iCabeza
                LidiaRow.defiende = iDefiende
                LidiaRow.vara = itomoVara
                _LidiaCaballo.Update(LidiaRow)
            Else
                _LidiaCaballo.Delete(animal, numeroVara) ' Borras la vara que ya no es necesaria
            End If
        Else
            If (HayVara) Then
                _LidiaCaballo.Insert(animal, claveAnimal, numeroVara, _
                                        iRegresa, iDistancia, iSitio, iAprieta, _
                                         iFijeza, iCabeza, iDefiende, itomoVara)
            End If
        End If
    End Sub
    Private Sub grabarLidiaCaballo()
        setVara(iAnimal, 1, ddlRegresa1, ddlDistancia1, ddlSitio1, _
                            ddlAprieta1, ddlFijeza1, ddlCabeza1, ddlDefiende1, ddlTomoV1)
        setVara(iAnimal, 2, ddlRegresa2, ddlDistancia2, ddlSitio2, _
                            ddlAprieta2, ddlFijeza2, ddlCabeza2, ddlDefiende2, ddlTomoV2)
        setVara(iAnimal, 3, ddlRegresa3, ddlDistancia3, ddlSitio3, _
                           ddlAprieta3, ddlFijeza3, ddlCabeza3, ddlDefiende3, ddlTomoV3)
        setVara(iAnimal, 4, ddlRegresa4, ddlDistancia4, ddlSitio4, _
                           ddlAprieta4, ddlFijeza4, ddlCabeza4, ddlDefiende4, ddlTomoV4)
        setVara(iAnimal, 5, ddlRegresa5, ddlDistancia5, ddlSitio5, _
                           ddlAprieta5, ddlFijeza5, ddlCabeza5, ddlDefiende5, ddlTomoV5)
        setVara(iAnimal, 6, ddlRegresa6, ddlDistancia6, ddlSitio6, _
                           ddlAprieta6, ddlFijeza6, ddlCabeza6, ddlDefiende6, ddlTomoV6)
        setVara(iAnimal, 7, ddlRegresa7, ddlDistancia7, ddlSitio7, _
                           ddlAprieta7, ddlFijeza7, ddlCabeza7, ddlDefiende7, ddlTomoV7)
    End Sub
    Private Sub grabarLidiaPie()
        LidiaPie = _LidiaPie.GetLidiaPieByAnimal(iAnimal)
        Dim i_emotividad, i_fijeza, i_remata, i_desarrollo, i_distancia, _
       i_prontitud, i_fuerza, i_enrazado, i_fireza, i_galope, i_alegria, _
       i_obediente, i_gazapea, i_escarba, i_querencia, i_berrea, i_rectitud_der, _
       i_rectitud_izq, i_repite_der, i_repite_izq, i_pCabeza_D, i_pCabeza_I, _
       i_recorrido_der, i_recorrido_izq, i_nobleza_der, i_nobleza_izq, i_pManos_D, _
       i_pManos_I, i_humilla_der, i_humilla_izq, i_son_der, i_son_izq, i_pRecorrido_D, _
       i_pRecorrido_I, i_frena_der, i_frena_izq, i_repone_der, i_repone_izq, _
       i_pFinalizacion_D, i_pFinalizacion_I, i_bajacabeza, i_rajado, i_pases, i_cabeza As Integer

        Dim HayDatos As New Boolean ' Verificar si el usuario ingreso datos

        i_emotividad = CType(ddlmEmotividad.SelectedValue, Integer)
        i_fijeza = CType(ddlmFijeza.SelectedValue, Integer)
        i_remata = CType(ddlmRemata.SelectedValue, Integer)
        i_desarrollo = CType(ddlmDesarrollo.SelectedValue, Integer)
        i_distancia = CType(ddlmDistancia.SelectedValue, Integer)
        i_prontitud = CType(ddlmProntitud.SelectedValue, Integer)
        i_fuerza = CType(ddlmFuerza.SelectedValue, Integer)
        i_enrazado = CType(ddlmEnrazado.SelectedValue, Integer)
        i_fireza = CType(ddlmFiereza.SelectedValue, Integer)
        i_galope = CType(ddlmGalope.SelectedValue, Integer)
        i_alegria = CType(ddlmAlegria.SelectedValue, Integer)
        i_obediente = CType(ddlmObediente.SelectedValue, Integer)
        i_gazapea = CType(ddlmGazapea.SelectedValue, Integer)
        i_escarba = CType(ddlmEscarba.SelectedValue, Integer)
        i_querencia = CType(ddlmQuerencia.SelectedValue, Integer)
        i_berrea = CType(ddlmBerrea.SelectedValue, Integer)
        i_rectitud_der = CType(ddlmRectitud_D.SelectedValue, Integer)
        i_rectitud_izq = CType(ddlmRectitud_I.SelectedValue, Integer)
        i_repite_der = CType(ddlmRepite_D.SelectedValue, Integer)
        i_repite_izq = CType(ddlmRepite_I.SelectedValue, Integer)
        i_pCabeza_D = CType(ddlmCabeza_D.SelectedValue, Integer)
        i_pCabeza_I = CType(ddlmCabeza_I.SelectedValue, Integer)
        'i_recorrido_der = CType(ddlmRecorrido_D.SelectedValue, Integer)
        'i_recorrido_izq = CType(ddlmRecorrido_I.SelectedValue, Integer)
        i_nobleza_der = CType(ddlmNobleza_D.SelectedValue, Integer)
        i_nobleza_izq = CType(ddlmNobleza_I.SelectedValue, Integer)
        i_pManos_D = CType(ddlmMano_D.SelectedValue, Integer)
        i_pManos_I = CType(ddlmMano_I.SelectedValue, Integer)
        'i_humilla_der = CType(ddlmHumildad_D.SelectedValue, Integer)
        'i_humilla_izq = CType(ddlmHumildad_I.SelectedValue, Integer)
        i_son_der = CType(ddlmSon_D.SelectedValue, Integer)
        i_son_izq = CType(ddlmSon_I.SelectedValue, Integer)
        i_pRecorrido_D = CType(ddlmRecorrido2_D.SelectedValue, Integer)
        i_pRecorrido_I = CType(ddlmRecorrido2_I.SelectedValue, Integer)
        'i_frena_der = CType(ddlmFrena_D.SelectedValue, Integer)
        'i_frena_izq = CType(ddlmFrena_I.SelectedValue, Integer)
        i_repone_der = CType(ddlmRepone_D.SelectedValue, Integer)
        i_repone_izq = CType(ddlmRepone_I.SelectedValue, Integer)
        i_pFinalizacion_D = CType(ddlmFinalizacion_D.SelectedValue, Integer)
        i_pFinalizacion_I = CType(ddlmFinalizacion_I.SelectedValue, Integer)
        i_bajacabeza = CType(ddlmBajaCabeza.SelectedValue, Integer)
        i_rajado = CType(ddlmRajado.SelectedValue, Integer)
        i_pases = CType(ddlmPases.SelectedValue, Integer)
        i_cabeza = CType(ddlmCabezas.SelectedValue, Integer)

        HayDatos = Not (i_emotividad = 0 And i_fijeza = 0 And i_remata = 0 And i_desarrollo = 0 And i_distancia = 0 And i_prontitud = 0 And _
                    i_fuerza = 0 And i_enrazado = 0 And i_fireza = 0 And i_galope = 0 And i_alegria = 0 And i_obediente = 0 And i_gazapea = 0 And _
                    i_escarba = 0 And i_querencia = 0 And i_berrea = 0 And i_recorrido_der = 0 And i_recorrido_izq = 0 And i_repite_der = 0 And _
                    i_rectitud_izq = 0 And i_pCabeza_D = 0 And i_pCabeza_I = 0 And i_nobleza_der = 0 And i_nobleza_izq = 0 And i_pManos_D = 0 And _
                    i_pManos_I = 0 And i_son_der = 0 And i_son_izq = 0 And i_pRecorrido_D = 0 And i_pRecorrido_I = 0 And i_repone_der = 0 And i_repite_izq = 0 And _
                    i_pFinalizacion_D = 0 And i_pFinalizacion_I = 0 And i_bajacabeza = 0 And i_rajado = 0 And i_pases = 0 And i_cabeza = 0)
        If LidiaPie.Count = 1 Then ' Existe registro en la tabla LidiaPie
            If HayDatos Then
                LidiaPie(0).emotividad = i_emotividad
                LidiaPie(0).fijeza = i_fijeza
                LidiaPie(0).remata = i_remata
                LidiaPie(0).desarrollo = i_desarrollo
                LidiaPie(0).distancia = i_distancia
                LidiaPie(0).prontitud = i_prontitud
                LidiaPie(0).fuerza = i_fuerza
                LidiaPie(0).enrazado = i_enrazado
                LidiaPie(0).fireza = i_fireza
                LidiaPie(0).galope = i_galope
                LidiaPie(0).alegria = i_alegria
                LidiaPie(0).obediente = i_obediente
                LidiaPie(0).gazapea = i_gazapea
                LidiaPie(0).escarba = i_escarba
                LidiaPie(0).querencia = i_querencia
                LidiaPie(0).berrea = i_berrea
                LidiaPie(0).rectitud_der = i_rectitud_der
                LidiaPie(0).rectitud_izq = i_rectitud_izq
                LidiaPie(0).repite_der = i_repite_der
                LidiaPie(0).repite_izq = i_repite_izq
                LidiaPie(0).pCabeza_D = i_pCabeza_D
                LidiaPie(0).pCabeza_I = i_pCabeza_I
                LidiaPie(0).recorrido_der = i_recorrido_der
                LidiaPie(0).recorrido_izq = i_recorrido_izq
                LidiaPie(0).nobleza_der = i_nobleza_der
                LidiaPie(0).nobleza_izq = i_nobleza_izq
                LidiaPie(0).pManos_D = i_pManos_D
                LidiaPie(0).pManos_I = i_pManos_I
                LidiaPie(0).humilla_der = i_humilla_der
                LidiaPie(0).humilla_izq = i_humilla_izq
                LidiaPie(0).son_der = i_son_der
                LidiaPie(0).son_izq = i_son_izq
                LidiaPie(0).pRecorrido_D = i_pRecorrido_D
                LidiaPie(0).pRecorrido_I = i_pRecorrido_I
                LidiaPie(0).frena_der = i_frena_der
                LidiaPie(0).frena_izq = i_frena_izq
                LidiaPie(0).repone_der = i_repone_der
                LidiaPie(0).repone_izq = i_repone_izq
                LidiaPie(0).pFinalizacion_D = i_pFinalizacion_D
                LidiaPie(0).pFinalizacion_I = i_pFinalizacion_I
                LidiaPie(0).bajacabeza = i_bajacabeza
                LidiaPie(0).rajado = i_rajado
                LidiaPie(0).pases = i_pases
                LidiaPie(0).cabeza = i_cabeza
            Else
                _LidiaPie.Delete(iAnimal, LidiaPie(0).keys)
                Exit Sub
            End If
            
        Else
            If HayDatos Then
                Dim LidiaPierow As LidiaPieRow = LidiaPie.NewLidiaPieRow
                LidiaPierow.animalId = iAnimal
                LidiaPierow.keys = hdClave.Value
                LidiaPierow.emotividad = i_emotividad
                LidiaPierow.fijeza = i_fijeza
                LidiaPierow.remata = i_remata
                LidiaPierow.desarrollo = i_desarrollo
                LidiaPierow.distancia = i_distancia
                LidiaPierow.prontitud = i_prontitud
                LidiaPierow.fuerza = i_fuerza
                LidiaPierow.enrazado = i_enrazado
                LidiaPierow.fireza = i_fireza
                LidiaPierow.galope = i_galope
                LidiaPierow.alegria = i_alegria
                LidiaPierow.obediente = i_obediente
                LidiaPierow.gazapea = i_gazapea
                LidiaPierow.escarba = i_escarba
                LidiaPierow.querencia = i_querencia
                LidiaPierow.berrea = i_berrea
                LidiaPierow.rectitud_der = i_rectitud_der
                LidiaPierow.rectitud_izq = i_rectitud_izq
                LidiaPierow.repite_der = i_repite_der
                LidiaPierow.repite_izq = i_repite_izq
                LidiaPierow.pCabeza_D = i_pCabeza_D
                LidiaPierow.pCabeza_I = i_pCabeza_I
                LidiaPierow.recorrido_der = i_recorrido_der
                LidiaPierow.recorrido_izq = i_recorrido_izq
                LidiaPierow.nobleza_der = i_nobleza_der
                LidiaPierow.nobleza_izq = i_nobleza_izq
                LidiaPierow.pManos_D = i_pManos_D
                LidiaPierow.pManos_I = i_pManos_I
                LidiaPierow.humilla_der = i_humilla_der
                LidiaPierow.humilla_izq = i_humilla_izq
                LidiaPierow.son_der = i_son_der
                LidiaPierow.son_izq = i_son_izq
                LidiaPierow.pRecorrido_D = i_pRecorrido_D
                LidiaPierow.pRecorrido_I = i_pRecorrido_I
                LidiaPierow.frena_der = i_frena_der
                LidiaPierow.frena_izq = i_frena_izq
                LidiaPierow.repone_der = i_repone_der
                LidiaPierow.repone_izq = i_repone_izq
                LidiaPierow.pFinalizacion_D = i_pFinalizacion_D
                LidiaPierow.pFinalizacion_I = i_pFinalizacion_I
                LidiaPierow.bajacabeza = i_bajacabeza
                LidiaPierow.rajado = i_rajado
                LidiaPierow.pases = i_pases
                LidiaPierow.cabeza = i_cabeza
                LidiaPie.AddLidiaPieRow(LidiaPierow)
            End If
        End If

        _LidiaPie.Update(LidiaPie)


    End Sub
    Function PonderarCalificaciones(ByVal categoria As String, ByVal valorInterno As String) As Double
        Dim registro As ponderacionesRow
        registro = pondera.FindBycategoriavalor_interno(categoria, valorInterno)
        Return registro.pondera
    End Function
#End Region
#Region "Guardar en la base de datos"
    Protected Sub btnAceptar2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAceptar2.Click, btnAceptar1.Click
        Try
            iAnimal = Request.QueryString("Animal")
        Catch ex As Exception
            Exit Sub
        End Try

        Animal = _Animal.GetLidiaById(iAnimal) 'Ver si existe el animal
        If Animal.Count = 1 Then
            Dim iActualiza As Integer
            LidiaCaballo = _LidiaCaballo.GetLidiaCaballoByAnimal(iAnimal)
            Animal(0).lidia_ac = ddlLidia_Ac.SelectedValue
            Animal(0).lidia_ap = ddlLidia_AP.SelectedValue
            Animal(0).lidia_plaza = ddlPlaza.SelectedValue
            If IsDate(txtFecha.Text) Then
                Animal(0).lidia_fecha = CType(txtFecha.Text, Date)
            Else
                Animal(0).Setlidia_fechaNull()
            End If
            If IsNumeric(txtLugar.Text) Then Animal(0).lidia_lugar = CType(txtLugar.Text, Integer)
            If IsNumeric(txtPeso.Text) Then Animal(0).lidia_peso = CType(txtPeso.Text, Integer)
            Animal(0).lidia_nombre = txtNombre.Text
            Animal(0).lidia_resultado = ddlResultado.SelectedValue
            Animal(0).lidia_matador = ddlMatador.SelectedValue
            Animal(0).lidia_trofeos = ddlTrofeos.SelectedValue
            Animal(0).lidia_rec_gan = ddlReconocimiento.SelectedValue
            If IsNumeric(txtPrecio.Text) Then Animal(0).lidia_precio = CType(txtPrecio.Text, Integer)


            iActualiza = _Animal.Update(Animal)
            grabarLidiaCaballo()
            grabarLidiaPie()


            If iActualiza = 1 Then
                lblRespuesta.CssClass = "success"
                lblRespuesta.Text = "REGISTRO ACTUALIZADO"
            End If
        End If


    End Sub
#End Region

#Region "Calculo de tientas"
    Protected Sub imgCalLidiaAC_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgCalLidiaAC.Click
        ' Obten el numero del animal a trabajar
        Try
            iAnimal = CType(Request.QueryString("animal"), Integer)
        Catch ex As Exception
            Exit Sub
        End Try
        ' Verifico si existe el animal
        Animal = _Animal.GetLidiaById(iAnimal)
        If Animal.Count = 1 Then ' Existe el animal
            LidiaCaballo = _LidiaCaballo.GetLidiaCaballoByAnimal(iAnimal) ' Obtengo los registro del Lidia a Caballo
            grabarLidiaCaballo()
            If LidiaCaballo.Count > 0 Then
                Dim noVaras As Integer
                Dim nCalif, nCalBasica, nFr, nFd, nFtv, nFde, nFv As Double
                Dim nAprieta, nFijeza, nSitio, nCabeza, nRegresa, nDistancia, nVara, nDefiende As Double

                For Each Row In LidiaCaballo
                    nAprieta = PonderarCalificaciones("APRIETA", Row.aprieta.ToString)
                    nFijeza = PonderarCalificaciones("FIJEZA", Row.fijeza.ToString)
                    nSitio = PonderarCalificaciones("SITIO", Row.sitio.ToString)
                    nCabeza = PonderarCalificaciones("CABEZA", Row.cabeza.ToString)
                    ' *** SUMA DE CALIFICACIONES *** 
                    nCalBasica += nAprieta + nFijeza + nSitio + nCabeza
                    ' ** FACTOR REGRESA (nFr) ** 
                    nRegresa = PonderarCalificaciones("REGRESA", Row.regresa.ToString)
                    nFr += nRegresa
                    ' *** FACTOR DISTANCIA (nFd) ***
                    nDistancia = PonderarCalificaciones("DISTANCIA", Row.distancia.ToString)
                    nFd += nDistancia
                    ' *** FACTOR TOMO VARA (nFtv)***
                    nVara = PonderarCalificaciones("VARA", Row.vara.ToString)
                    nFtv += nVara
                    ' *** FACTOR DEFIENDE (nFde) ***
                    nDefiende = PonderarCalificaciones("DEFIENDE", Row.defiende.ToString)
                    nFde += nDefiende

                    noVaras += 1
                Next

                ' Calificacion basica Promedio
                nCalBasica = nCalBasica / noVaras
                lblCalculoTienta.Text = "Calificacion Basica:" & nCalBasica.ToString & "<br \>"

                ' *** Factor Varas (nFv) ***
                nFv = 0.05 * (noVaras - 4)
                lblCalculoTienta.Text += "Factor Vara(Fv): " & nFv.ToString & "<br \>"

                ' *** Factor Regresa (nFr) ***
                nFr = nFr / noVaras
                lblCalculoTienta.Text += "Factor Regresa(Fr): " & nFr.ToString & "<br \>"

                ' *** Factor Distancia (nFd) ***
                nFd = nFd / noVaras
                lblCalculoTienta.Text += "Factor Distancia(Fd): " & nFd.ToString & "<br \>"

                ' *** Factor Tomo Vara (nFtv)
                nFtv = nFtv / noVaras
                lblCalculoTienta.Text += "Factor Calidad Tomo Vara(Fcv):" & nFtv.ToString & "<br \>"

                ' *** Factor Defiende (nFde)
                nFde = nFde / noVaras
                lblCalculoTienta.Text += "Factor Pelea(Fp): " & nFde.ToString & "<br \>"

                ' *** CALIFICACION FINAL ****
                nCalif = nCalBasica * (1 + (nFv + nFr + nFd)) * nFtv * nFde

                lblRespuesta.Text = nCalif.ToString

                If nCalif > 9 Then
                    txtLidiaACCal.Text = "S"
                    Animal(0).lidia_acCal = "S"
                Else
                    txtLidiaACCal.Text = ponderaciones.NOTAAC("NOTAAC", nCalif)
                    Animal(0).lidia_acCal = ponderaciones.NOTAAC("NOTAAC", nCalif)
                End If

                Try
                    _Animal.Update(Animal)
                Catch ex As Exception
                    Exit Sub
                End Try
            Else
                lblRespuesta.Text = "No existe valores a calcular"
                lblRespuesta.CssClass = "error"
            End If
        Else
            Exit Sub
        End If


    End Sub
#End Region
    
    
    Protected Sub imgCalLidiaAP_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgCalLidiaAP.Click
        Try
            iAnimal = CType(Request.QueryString("animal"), Integer)
        Catch ex As Exception
            Exit Sub
        End Try
        Animal = _Animal.GetLidiaById(iAnimal) ' Cargo el animal a modificar
        If Animal.Count = 1 Then
            grabarLidiaPie()
            If LidiaPie.Count = 1 Then ' Verifico que sigan existiendo datos
                Dim dClase, dNobleza, dRaza, dEmotividad, dLidiaPie As Double
                ' ************* CLASE ********
                dClase = (PonderarCalificaciones("mSon_D", LidiaPie(0).son_der) + PonderarCalificaciones("mSon_I", LidiaPie(0).son_izq)) / 2 * 2
                dClase += (PonderarCalificaciones("pCabeza", LidiaPie(0).pCabeza_D) + PonderarCalificaciones("pCabeza", LidiaPie(0).pCabeza_I)) / 2 * 3
                dClase += PonderarCalificaciones("mPases", LidiaPie(0).pases) * 2
                dClase += (PonderarCalificaciones("mRepone_D", LidiaPie(0).repone_der) + PonderarCalificaciones("mRepone_I", LidiaPie(0).repone_izq)) / 2 * -2
                dClase += PonderarCalificaciones("mGazapea", LidiaPie(0).gazapea) * -3
                dClase += (PonderarCalificaciones("pManos", LidiaPie(0).pManos_D) + PonderarCalificaciones("pManos", LidiaPie(0).pManos_I)) / 2 * 4
                dClase += (PonderarCalificaciones("pFinalizacion", LidiaPie(0).pFinalizacion_D) + PonderarCalificaciones("pFinalizacion", LidiaPie(0).pFinalizacion_I)) / 2 * 4

                ' ************* NOBLEZA ********
                dNobleza = (PonderarCalificaciones("mNobleza_D", LidiaPie(0).nobleza_der) + PonderarCalificaciones("mNobleza_I", LidiaPie(0).son_izq)) / 2 * 3
                dNobleza += PonderarCalificaciones("mObediente", LidiaPie(0).obediente) * 3
                dNobleza += PonderarCalificaciones("mCabeza", LidiaPie(0).cabeza) * 2
                dNobleza += (PonderarCalificaciones("mRectitud_D", LidiaPie(0).rectitud_der) + PonderarCalificaciones("mRectitud_I", LidiaPie(0).rectitud_izq)) / 2 * 3
                dNobleza += (PonderarCalificaciones("mRepone_D", LidiaPie(0).repone_der) + PonderarCalificaciones("mRepone_I", LidiaPie(0).repone_izq)) / 2 * -3

                ' ************* RAZA ********
                dRaza = PonderarCalificaciones("mEnrazado", LidiaPie(0).enrazado) * 3
                dRaza += PonderarCalificaciones("mFiereza", LidiaPie(0).fireza) * 3
                dRaza += PonderarCalificaciones("mDistancia", LidiaPie(0).distancia) * 3
                dRaza += PonderarCalificaciones("mProntitud", LidiaPie(0).prontitud) * 3
                dRaza += PonderarCalificaciones("mFijeza", LidiaPie(0).fijeza) * 3
                dRaza += PonderarCalificaciones("mRemata", LidiaPie(0).remata) * 2
                dRaza += PonderarCalificaciones("mGalope", LidiaPie(0).galope) * 3
                dRaza += (PonderarCalificaciones("mRepite_D", LidiaPie(0).repite_der) + PonderarCalificaciones("mRepite_I", LidiaPie(0).repite_izq)) / 2 * 3
                dRaza += PonderarCalificaciones("mEscarba", LidiaPie(0).escarba) * -2
                dRaza += PonderarCalificaciones("mBerrea", LidiaPie(0).berrea) * -2
                dRaza += PonderarCalificaciones("mBajaCabeza", LidiaPie(0).bajacabeza) * -3 ' Actualmente se denomina "PRUEBA"
                dRaza += PonderarCalificaciones("mQuerencia", LidiaPie(0).querencia) * -4
                dRaza += PonderarCalificaciones("mRajado", LidiaPie(0).rajado) * -4


                ' ************* EMOTIVIDAD ********
                dEmotividad = PonderarCalificaciones("mEmotividad", LidiaPie(0).emotividad) * 3
                dEmotividad += PonderarCalificaciones("mAlegria", LidiaPie(0).alegria) * 3
                dEmotividad += (PonderarCalificaciones("mSon_D", LidiaPie(0).son_der) + PonderarCalificaciones("mSon_I", LidiaPie(0).son_izq)) / 2 * 3
                dEmotividad += PonderarCalificaciones("mDistancia", LidiaPie(0).distancia) * 2
                dEmotividad += PonderarCalificaciones("mProntitud", LidiaPie(0).prontitud) * 3
                dEmotividad += PonderarCalificaciones("mGalope", LidiaPie(0).galope) * 3
                dEmotividad += PonderarCalificaciones("mEnrazado", LidiaPie(0).enrazado) * 3


                ' Realiza los calculos con las ponderaciones asignadas
                dClase = ((dClase + 7) / 20) * 9
                dNobleza = ((dNobleza + 5) / 16) * 9
                dRaza = ((dRaza + 15) / 41) * 9
                dEmotividad = dEmotividad / 20 * 9

                dLidiaPie = (0.25 * (dClase + dNobleza)) + (0.4 * dRaza) + (0.1 * dEmotividad)

                ' Asigna a controles
                ' ********* CLASE *******
                If dClase > 9 Then
                    txtClase.Text = "S"
                    Animal(0).lidia_clase = "S"
                Else
                    txtClase.Text = ponderaciones.NOTAAC("CLASE", dClase)
                    Animal(0).lidia_clase = ponderaciones.NOTAAC("CLASE", dClase)
                End If
                ' ********** NOBLEZA *********
                If dNobleza > 9 Then
                    txtNobleza.Text = "S"
                    Animal(0).lidia_nobleza = "S"
                Else
                    txtNobleza.Text = ponderaciones.NOTAAC("NOBLEZA", dNobleza)
                    Animal(0).lidia_nobleza = ponderaciones.NOTAAC("NOBLEZA", dNobleza)
                End If
                ' *********** RAZA ******
                If dRaza > 9 Then
                    txtRaza.Text = "S"
                    Animal(0).lidia_raza = "S"
                Else
                    txtRaza.Text = ponderaciones.NOTAAC("RAZA", dRaza)
                    Animal(0).lidia_raza = ponderaciones.NOTAAC("RAZA", dRaza)
                End If
                ' *********EMOTIVIDAD *********
                If dEmotividad > 9 Then
                    txtEmotividad.Text = "S"
                    Animal(0).lidia_emotividad = "S"
                Else
                    txtEmotividad.Text = ponderaciones.NOTAAC("EMOTIVIDAD", dEmotividad)
                    Animal(0).lidia_emotividad = ponderaciones.NOTAAC("EMOTIVIDAD", dEmotividad)
                End If
                ' *********** LIDIA AP *******
                If dLidiaPie > 9 Then
                    txtLidiaAPCal.Text = "S"
                    Animal(0).lidia_apCal = "S"
                Else
                    txtLidiaAPCal.Text = ponderaciones.NOTAAC("NOTAAP", dLidiaPie)
                    Animal(0).lidia_apCal = ponderaciones.NOTAAC("NOTAAP", dLidiaPie)
                End If

                lblRespuesta.CssClass = "success"
                lblRespuesta.Text = "CALCULO LIDIA A PIE REALIZADO"

                ' Imprime resultados 
                lblCalculoTienta.Text = "CLASE: " & dClase.ToString & "<br>" + _
                                        "NOBLEZA: " & dNobleza.ToString & "<br>" + _
                                        "RAZA: " & dRaza.ToString & "<br>" + _
                                        "EMOTIVIDAD: " & dEmotividad.ToString & "<br>" + _
                                        "<b>TIENTA PIE:</b> " & dLidiaPie.ToString
            Else
                ' Limpieza de controles
                txtClase.Text = ""
                txtNobleza.Text = ""
                txtRaza.Text = ""
                txtEmotividad.Text = ""
                txtLidiaAPCal.Text = ""

                Animal(0).lidia_clase = ""
                Animal(0).lidia_nobleza = ""
                Animal(0).lidia_raza = ""
                Animal(0).lidia_emotividad = ""
                Animal(0).lidia_apCal = ""

                lblRespuesta.CssClass = "error"
                lblRespuesta.Text = "NO EXISTEN DATOS A CALCULAR"
            End If
            Try
                _Animal.Update(Animal)
            Catch ex As Exception
                lblRespuesta.Text = e.ToString
                Exit Sub
            End Try
        Else
            Exit Sub

        End If


        

    End Sub
End Class
